StableStudioからStable Diffusion Web UIを使って画像生成してみた

StableStudioからStable Diffusion Web UIを使って画像生成してみた

Clock Icon2024.11.20

こんにちは、ゲームソリューション部のsoraです。
今回は、StableStudioからStable Diffusion Web UIを使って画像生成してみたことについて書いていきます。

Stable Diffusion Web UI・StableStudio・DreamStudioとは

上記3つのサービスは似たような名前・機能のため、以下にそれぞれが何かを記載します。

  • Stable Diffusion Web UI
    • ローカルやサーバにインストールして、機能としてUI部分も画像生成部分も持つ
    • オープンソースであり無料で利用可能
    • インフラは自身で準備する必要がある(ある程度の性能が求められる)
  • DreamStudio
    • Webアプリケーションで登録するだけで画像生成が可能
    • クレジットを購入して利用
  • StableStudio
    • DreamStudioのオープンソース版
    • 画像生成自体の機能は持っていない(UI部分のみ)

今回は、StableStudioとStable Diffusion Web UIをそれぞれEC2上に構築・接続して画像生成を行います。

Stable Diffusion Web UIの構築

以下ブログで構築したものを使用します。
AUTOMATIC1111版を使用しています。
https://dev.classmethod.jp/articles/ec2-al2-stablediffusion-webui-automatic1111/

StableStudioの構築

EC2上にStableStudioを構築します。
OSはAmazon Linux 2023、インスタンスタイプはt3.2xlargeです。
画面が重かったため大きめのインスタンスにしていますが、t3.2xlargeではメモリ使用率は5%程度だったため、もっと小さいインスタンスで良いです。
StableStudio自体で画像生成をするわけではないため、GPUはなしにしています。

次に、StableStudioをインストールします。

# Gitのインストール
sudo yum install -y git

# Node.jsのインストール
curl -sL https://rpm.nodesource.com/setup_22.x | sudo -E bash -
sudo yum install -y nodejs

# yarnのインストール
sudo npm install -g yarn

# StableStudioのインストール
git clone https://github.com/Stability-AI/StableStudio.git
cd StableStudio
yarn
yarn dev --host

実行後にhttp://{IPアドレス}:3000にアクセスすると、初回はAPI Keyを設定していないため、API Keyを設定する画面が表示されます。
sr-stablestudio-webui-01

もしDreamStudioのAPI Keyを使用して利用する場合は、この画面にてAPI Keyを登録すれば使用できます。
ただし、今回のようにStable Diffusion Web UIを使用する場合、Stable Diffusion Web UIではAPI Keyを発行する機能はないため、プラグインを使用して利用できるようにします。
https://github.com/Stability-AI/StableStudio/blob/main/packages/stablestudio-plugin/
https://github.com/Stability-AI/StableStudio/blob/main/packages/stablestudio-plugin-webui/

StableStudioからStable Diffusion Web UIへの接続設定

まず以下コマンドをStable Diffusion Web UI側のインスタンスで実行して、StableStudioからのリクエストを受けられるようにします。

source webui.sh --nowebui --cors-allow-origins=http://{StableStudioインスタンスのIPアドレス}:3000

http://{Stable Diffusion Web UIのIPアドレス}:7861/docsでAPIドキュメントも確認可能です。
sr-stablestudio-webui-02

次に、StableStudio側のインスタンスで以下コマンドにて、プラグインを含めて実行します。

yarn dev:use-webui-plugin --host

実行後にhttp://{StableStudioのIPアドレス}:3000にアクセスすると、プラグインを利用しない場合とは異なりDreamStudioっぽいStableStudioの画面が表示されます。
sr-stablestudio-webui-03

接続先を指定するため、右上の歯車マークからSettings画面にて、Host URLとしてhttp://{Stable Diffusion Web UIのIPアドレス}:7861を入力します。
sr-stablestudio-webui-04

これで設定完了です。

(余談)
設定を開いたときに、Stable Diffusion Web UI側で以下エラーが出ていましたが、画像生成に影響はなかったため一旦無視しました。

INFO:     xxx.xxx.xxx.xxx:61400 - "POST /StableStudio/get-generated-images HTTP/1.1" 404 Not Found

画像生成の実行

設定が完了したため、実際に画像生成を試してみます。
sr-stablestudio-webui-05

画像のアップロードや生成する画像数の設定変更も正常に動作しました。
sr-stablestudio-webui-06

最後に

今回は、StableStudioからStable Diffusion Web UIを使って画像生成してみたことを記事にしました。
どなたかの参考になると幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.